_ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee selects the appropriate piece of the program's locale as
specified by the _c_a_t_e_g_o_r_y and _l_o_c_a_l_e arguments. The _c_a_t_e_g_o_r_y argument
may have the following values: _LLLL_CCCC______CCCC_TTTT_YYYY_PPPP_EEEE_,,,, _LLLL_CCCC______NNNN_UUUU_MMMM_EEEE_RRRR_IIII_CCCC_,,,, _LLLL_CCCC______TTTT_IIII_MMMM_EEEE_,,,, _LLLL_CCCC______CCCC_OOOO_LLLL_LLLL_AAAA_TTTT_EEEE_,,,,
_LLLL_CCCC______MMMM_OOOO_NNNN_EEEE_TTTT_AAAA_RRRR_YYYY_,,,, _LLLL_CCCC______MMMM_EEEE_SSSS_SSSS_AAAA_GGGG_EEEE_SSSS and _LLLL_CCCC______AAAA_LLLL_LLLL_.... These names are defined in the
_llll_oooo_cccc_aaaa_llll_eeee_...._hhhh header file. _LLLL_CCCC______CCCC_TTTT_YYYY_PPPP_EEEE affects the behavior of the character
handling functions (_iiii_ssss_aaaa_llll_pppp_hhhh_aaaa, _tttt_oooo_llll_oooo_wwww_eeee_rrrr, etc.) and the multibyte character
functions (such as _mmmm_bbbb_tttt_oooo_wwww_cccc and _wwww_cccc_tttt_oooo_mmmm_bbbb). _LLLL_CCCC______NNNN_UUUU_MMMM_EEEE_RRRR_IIII_CCCC affects the decimal-
point character for the formatted input/output functions and the string
conversion functions as well as the non-monetary formatting information
returned by _llll_oooo_cccc_aaaa_llll_eeee_cccc_oooo_nnnn_vvvv [see _llll_oooo_cccc_aaaa_llll_eeee_cccc_oooo_nnnn_vvvv(3C)]. _LLLL_CCCC______TTTT_IIII_MMMM_EEEE affects the
behavior of _aaaa_ssss_cccc_ffff_tttt_iiii_mmmm_eeee, _cccc_ffff_tttt_iiii_mmmm_eeee, _gggg_eeee_tttt_dddd_aaaa_tttt_eeee, and _ssss_tttt_rrrr_ffff_tttt_iiii_mmmm_eeee. _LLLL_CCCC______CCCC_OOOO_LLLL_LLLL_AAAA_TTTT_EEEE affects
the behavior of _ssss_tttt_rrrr_cccc_oooo_llll_llll and _ssss_tttt_rrrr_xxxx_ffff_rrrr_mmmm. _LLLL_CCCC______MMMM_OOOO_NNNN_EEEE_TTTT_AAAA_RRRR_YYYY affects the monetary
formatted information returned by _llll_oooo_cccc_aaaa_llll_eeee_cccc_oooo_nnnn_vvvv. _LLLL_CCCC______MMMM_EEEE_SSSS_SSSS_AAAA_GGGG_EEEE_SSSS affects the
behavior of _gggg_eeee_tttt_tttt_xxxx_tttt, _cccc_aaaa_tttt_oooo_pppp_eeee_nnnn, _cccc_aaaa_tttt_cccc_llll_oooo_ssss_eeee, and _cccc_aaaa_tttt_gggg_eeee_tttt_ssss [see _cccc_aaaa_tttt_oooo_pppp_eeee_nnnn(3C) and
_cccc_aaaa_tttt_gggg_eeee_tttt_ssss(3C)]. _LLLL_CCCC______AAAA_LLLL_LLLL names the program's entire locale.
Each category corresponds to a set of databases that contain the relevant
information for each defined locale. The location of a database is given
by the following path, _////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_l_o_c_a_l_e_////_c_a_t_e_g_o_r_y, where _l_o_c_a_l_e and
_c_a_t_e_g_o_r_y are the names of locale and category, respectively. For
example, the database for the _LLLL_CCCC______CCCC_TTTT_YYYY_PPPP_EEEE category for the _""""_gggg_eeee_rrrr_mmmm_aaaa_nnnn_"""" locale
would be found in _////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_gggg_eeee_rrrr_mmmm_aaaa_nnnn_////_LLLL_CCCC______CCCC_TTTT_YYYY_PPPP_EEEE.
A value of _""""_CCCC_"""" for _l_o_c_a_l_e specifies the default environment.
A value of _""""_"""" for _l_o_c_a_l_e specifies that the locale should be taken from
environment variables. The order in which the environment variables are
checked for the various categories is given below:
is executed. This has the effect of initializing each category to the
locale described by the environment _""""_CCCC_"""".
If a pointer to a string is given for _l_o_c_a_l_e, _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee attempts to set
the locale for the given category to _l_o_c_a_l_e. If _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee succeeds,
_l_o_c_a_l_e is returned. If _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee fails, a null pointer is returned and
the program's locale is not changed.
For category _LLLL_CCCC______AAAA_LLLL_LLLL, the behavior is slightly different. If a pointer to
a string is given for _l_o_c_a_l_e and _LLLL_CCCC______AAAA_LLLL_LLLL is given for _c_a_t_e_g_o_r_y, _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee
attempts to set the locale for all the categories to _l_o_c_a_l_e. The _l_o_c_a_l_e
may be a simple locale, consisting of a single locale, or a composite
locale. A composite locale is a string returned by a previous call to
_ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee with _LLLL_CCCC______AAAA_LLLL_LLLL for which the locale did not consist of identical
category values. If _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee fails to set the locale for any category,
a null pointer is returned and the program's locale for all categories is
not changed. Otherwise, a description of the new locale is returned.
A null pointer for _l_o_c_a_l_e causes _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee to return the current locale
associated with the _c_a_t_e_g_o_r_y. The program's locale is not changed.
FFFFIIIILLLLEEEESSSS
_////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_CCCC_////_LLLL_CCCC______CCCC_TTTT_YYYY_PPPP_EEEE _LLLL_CCCC______CCCC_TTTT_YYYY_PPPP_EEEE database for the _CCCC locale
_////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_CCCC_////_LLLL_CCCC______NNNN_UUUU_MMMM_EEEE_RRRR_IIII_CCCC _LLLL_CCCC______NNNN_UUUU_MMMM_EEEE_RRRR_IIII_CCCC database for the _CCCC locale
_////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_CCCC_////_LLLL_CCCC______TTTT_IIII_MMMM_EEEE _LLLL_CCCC______TTTT_IIII_MMMM_EEEE database for the _CCCC locale
_////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_CCCC_////_LLLL_CCCC______CCCC_OOOO_LLLL_LLLL_AAAA_TTTT_EEEE _LLLL_CCCC______CCCC_OOOO_LLLL_LLLL_AAAA_TTTT_EEEE database for the _CCCC locale
_////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_CCCC_////_LLLL_CCCC______MMMM_EEEE_SSSS_SSSS_AAAA_GGGG_EEEE_SSSS _LLLL_CCCC______MMMM_EEEE_SSSS_SSSS_AAAA_GGGG_EEEE_SSSS database for the _CCCC locale
_////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_l_o_c_a_l_e_////_c_a_t_e_g_o_r_y files containing the locale-specific
Because _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee() may call _dddd_llll_oooo_pppp_eeee_nnnn(3), and because _dddd_llll_oooo_pppp_eeee_nnnn(3) calls are
forbidden from init sections of DSO's, _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee() should not be called
from such sections. See _DDDD_SSSS_OOOO(5) for more information.